Перевантаження операцій у Borland C

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2006
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Інші
Група:
КН

Частина тексту файла

Міністерство освіти і науки України Національний університет „ Львівська політехніка “ Кафедра ІСМ  Звіт про виконання лабораторної роботи № 4 з курсу „Технологія проектування програмних систем” на тему: «Перевантаження операцій у Borland C++» Мета роботи: вивчення способів перевантаження операцій та їх використання для роботи з класами та об’єктами. Порядок роботи 1. Вивчити способи перевантаження операцій у Borland C++. 2. Використовуючи завдання до лабораторної роботи № 2, перевантажити ряд операцій для зручності роботи з об’єктами оголошених класів. 3. Оформити звіт по роботі. Програма та результати її виконання #include <stdio.h> #include <conio.h> #include <iostream.h> #include <fstream.h> #define null 0 template <class T> class Vector { private: T *p; int num; public: Vector(int); Vector(const Vector&); ~Vector(); friend ostream& operator <<(ostream&, Vector&); friend istream& operator >>(istream&, Vector&); friend ofstream& operator <<(ofstream&, Vector&); friend ifstream& operator >>(ifstream&, Vector&); Vector& operator=(Vector& ar); T operator[](int i); int size(void); void read(void); void write(void); void sort(void); }; // constructor 1 template <class T> Vector<T>::Vector(int num) { p = new T[num]; this->num = num; } // constructor 2 template <class T> Vector<T>::Vector(const Vector& ar) { if (p) delete []p; this.num = ar.num; p = new T[num]; for (int i=0; i<num; i++) p[i] = ar.p[i]; } // destructor template <class T> Vector<T>::~Vector() { delete []p; } // ostream overload for console output template <class T> ostream& operator <<(ostream& os, Vector<T>& ar) { for (int i=0; i<ar.num; i++) os << ar.p[i] << " "; os << endl; return os; } // istream overload for console input template <class T> istream& operator >>(istream& is, Vector<T>& ar) { for (int i=0; i<ar.num; i++) is >> ar.p[i]; return is; } // ofstream overload for file output template <class T> ofstream& operator <<(ofstream& ofs, Vector<T>& ar) { for (int i=0; i<ar.num; i++) ofs << ar.p[i] << " "; ofs << endl; return ofs; } // ifstream overload for file input template <class T> ifstream& operator >>(ifstream& ifs, Vector<T>& ar) { for (int i=0; i<ar.num; i++) ifs >> ar.p[i]; return ifs; } // get size of Vector template <class T> int Vector<T>::size(void) { return num; } // console input template <class T> void Vector<T>::read(void) { for (int i=0; i<num; i++) scanf("%d", &p[i]); } // console output template <class T> void Vector<T>::write(void) { for (int i=0; i<num; i++) printf("%d ", p[i]); } // sorting template <class T> void Vector<T>::sort(void) { T temp; for (int j=0; j<num-1; j++) for (int i=j; i<num; i++) { if (i==j) continue; if (p[i]<p[j]) { temp = p[j]; p[j] = p[i]; p[i] = temp; } } } template <class T> Vector<T>& Vector<T>::operator=(Vector<T>& ar) { if (this == &ar) return *this; if (p) delete []p; num = ar.num; p = new T[num]; for (int i=0; i<num; i++) p[i] = ar.p[i]; return *this; } template <class T> T Vector<T>::operator[](int i) { if (i<0 || i>=num) return null; else return p[i]; } void main(void) { int n,m; cout << "Choose size of vector A:\a " ; cin >> n; cout << "Choose size of vector B:\a " ; cin >> m; Vector<int> A(n); Vector<int> B(m); // input Vectors cout <<"Please, input "<< A.size() <<" elements of vector A. operator >> (input) worked:\n\a"; cin >> A; cout <<"Please, input "<< B.size() <<" elements of vector B. operator >> (input) worked:\n\a"; cin >> B; // output Vectors cout << "Vector A: "; cout << A; cout << "Vector B: "; cout << B; // overloaded operator = B = A; // output B after appropriation cout << "Vector B after appropriation(B=A): "; cout << B; // demonstrate operator[]. Output Vector B with operator[] cout << "Output Vector B with operator[](B[i]): "; for (int i=0; i<B.size(); i++) cout << B[i] << " ...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини